// 资源列表与 CRUD 接口（axios 版）
import http from './http'
import type { Resource, ResourceListData, CreateAdminResourceDto, UpdateAdminResourceDto, ResponseIdData } from '@/types/resource.api'

/** 列表查询，仅支持 for_natural 过滤（不需要 JWT） */
export async function listResources(for_natural: string): Promise<ApiResponse<ResourceListData>> {
  return http.get<ResourceListData>('/admin/resource', {
    params: { for_natural },
  })
}

/** 详情查询（不需要 JWT） */
export async function getResourceDetail(id: string): Promise<ApiResponse<Resource>> {
  return http.get<Resource>(`/admin/resource/${id}`)
}

/** 创建资源（JWT required） */
export async function createResource(
  dto: CreateAdminResourceDto,
): Promise<ApiResponse<ResponseIdData>> {
  return http.post<CreateAdminResourceDto, ResponseIdData>('/admin/resource', dto)
}

/** 更新资源（JWT required） */
export async function updateResource(
  id: string,
  dto: UpdateAdminResourceDto,
): Promise<ApiResponse<ResponseIdData>> {
  return http.patch<UpdateAdminResourceDto, ResponseIdData>(`/admin/resource/${id}`, dto)
}

/** 删除资源（JWT required） */
export async function deleteResource(id: string): Promise<ApiResponse<ResponseIdData>> {
  return http.del<ResponseIdData>(`/admin/resource/${id}`)
}
